Method and Apparatus of Encoding or Decoding Using Reference Samples Determined by Predefined Criteria

ABSTRACT

A video processing method comprises receiving input data of a current block, checking if the current block satisfies one or more predefined criteria, setting the current block to be a root block if the current block satisfies the predefined criteria, one or more color components of one or more blocks in the current block are not checked with the predefined criteria if the current block is a root block, encoding or decoding the one or more color components of one or more blocks in the current block using neighboring reconstructed samples of the one or more color components of the current block as reference samples if the current block is a root block. Each block in the current block is encoded or decoded using neighboring reconstructed samples of each block in the current block as reference samples if the current block is not a root block.

CROSS REFERENCE TO RELATED APPLICATIONS

The present invention is a Continuation of pending U.S. application Ser.No. 17/283,332, filed on Apr. 7, 2021, which is a 371 National PhaseApplication of pending PCT Application No. PCT/CN2019/110160, filed onOct. 9, 2019, which claims priority to U.S. Provisional PatentApplication, Ser. No. 62/743,284, filed on Oct. 9, 2018, entitled “Intraprediction using shared reference samples”, U.S. Provisional PatentApplication, Ser. No. 62/767,609, filed on Nov. 15, 2018, entitled“Intra prediction using shared reference samples”, and U.S. ProvisionalPatent Application, Ser. No. 62/818,314, filed on Mar. 14, 2019,entitled “Intra prediction with reference samples restrictions”. Theabove U.S. Provisional Patent Applications are hereby incorporated byreference in their entireties.

TECHNICAL FIELD

The present invention relates to encoding or decoding video data usingneighboring reference samples in video processing. In particular, thepresent invention relates to encoding and decoding video data withreference samples determined based on predefined criteria.

BACKGROUND

Intra prediction has been widely adopted in various image and videocoding standard to process an initial picture or to periodically insertI-picture or I-blocks for random access or for alleviation of errorpropagation. Intra prediction is designed to exploit spatial features inthe picture such as smooth area, vertical line or edge, horizontal lineor edge, and diagonal line or edge within a picture or within a pictureregion. Intra prediction is also useful for regions with high motion orscene changes. For a block-based video coding standard, intra predictionfor a current block is relied upon samples in neighboring blocks thathave been processed. For example, if blocks in a picture or pictureregion are sequentially processed row by row from top to bottom and fromleft to right, neighboring blocks on the top and neighboring blocks onthe left of the current block can be used to form an intra predictor forpredicting samples in the current block.

The High-Efficiency Video Coding (HEVC) standard supports 35 intraprediction modes including 33 angular modes, DC mode and Planar mode.FIG. 1 illustrates the prediction directions for the 33 angular intraprediction modes supported in the HEVC standard, where H representsHorizontal direction mode and V represents Vertical direction mode. Anintra predictor for a current block coded or to be coded by intraprediction of HEVC is generated by three steps including intra smoothingfilter, intra prediction and intra gradient filter. FIG. 2 illustratesexemplary reference samples filtered by an intra smoothing filter forderiving an intra predictor for a current block. A smoothing operationis applied to reference samples 22 of the current block 20 as apre-processing step before calculating the intra predictor for thecurrent block 20. The smoothing operation corresponds to applying aFinite Impulse Response (FIR) intra smoothing filter, [1 2 1]>>2, withlow-pass characteristics to the reference samples 22 belonging to a leftneighboring column and an above neighboring row of the current block 20.The smoothing operation reduces the discontinuities introduced by someof the intra prediction modes by applying the FIR filter. This smoothingoperation is adaptively applied depending on an intra prediction modeand the size of the current block.

The second step of intra prediction is to derive the intra predictorfrom neighboring reference samples according to one intra predictionmode selected from the 35 intra prediction modes. The intra predictionmode is decided by the encoder and signaled in the bitstream so thecorresponding decoder may parse the intra prediction mode from thebitstream. The value of each sample in the current block is predicted byextrapolating the samples from the reference samples according to theprediction direction of the selected angular mode when an angular modeis selected. The value of each sample in the current block is calculatedassuming an amplitude surface with a horizontal and vertical smoothgradient derived from the boundaries samples of the neighboring blockswhen Planar mode is selected. The value of each samples of the currentblock is an average of the reference samples when DC mode is selected.

An intra gradient filter is applied to samples at the left and topboundaries of the current block in the third step. The concept ofapplying the intra gradient filter is to utilize the gradientinformation along the intra prediction direction to improve the qualityof intra prediction. FIG. 3A illustrates applying an intra gradientfiltering to a predictor predicted by Vertical mode or Horizontal mode.In FIG. 3A, a predicted pixel Pij denotes the predictor at row i andcolumn j, and AL represents a reconstructed sample at the left-abovecorner of the current block while Li represents a reconstructed samplein the left neighboring column of the current block. A final predictedpixel P′ij for each predicted pixel Pij is calculated by Equation (1)after applying the intra gradient filter.

P′ij=Pij+α·(Li−AL)  Equation (1)

where α is a fraction from 0 to 1 and is selected according to thehorizontal displacement j, for example, α=1/2 when j=0, and α=1/4 whenj=1. As for a current block predicted by Horizontal mode, afinalpredicted pixel P′ij for each predicted pixel Pij is calculated byEquation (2).

P′ij=Pij+α·(Aj−AL)  Equation (2)

where Aj is a reconstructed sample in the above row. As for thedirectional modes v+1˜v+8 and h+1˜h+8, a corresponding reference sampleRLi or RAj of the reconstructed sample Li or Aj is first obtained alongthe direction of intra prediction to replace the reconstructed sample Lior Aj. Interpolation of integer pixels in the above row or the leftcolumn of the current block is applied to generate the correspondingreference sample RLi or RAj when it is not located at the position of aninteger pixel. FIG. 3B illustrates examples of applying the intragradient filter for v+1˜v+8 directional modes. A final predicted pixelP′ij is calculated from each predicted pixel Pij according to Equation(3).

P′ij=Pij+α·(Li−RLi)  Equation (3)

Similar to Vertical mode, a is a fraction from 0 to 1 and is selectedaccording to the direction of intra prediction and the horizontaldisplacement j. As for h+1˜h+8 directional modes, the final predictedpixel P′ij is calculated from each predicted pixel Pij according toEquation (4), where a is a fraction from 0 to 1 and is selectedaccording to the direction of intra prediction and the verticaldisplacement i.

P′ij=Pij+α·(Aj−RAj)   Equation (4)

Although the intra gradient filter can be applied in all directionalmodes v+1˜v+8 and h+1˜h+8, the intra gradient filter is only appliedwhen the intra prediction mode is DC, Horizontal, or Vertical mode inthe HEVC standard. The samples in the first row and first column of thecurrent block are filtered by the intra gradient filter when theselected intra prediction mode is DC mode. The samples in the first roware filtered by the intra gradient filter when the selected intraprediction mode is Horizontal mode, and the samples in the first columnare filtered by the intra gradient filter if the selected intraprediction mode is Vertical mode.

Besides intra gradient filtering, another method, which is calledbi-directional intra prediction, was proposed to improve the quality ofintra prediction. For diagonal intra prediction modes, including v+1˜v+8and h+1˜h+8 directional modes, a weighted sum of reconstructed samplesof an above row and reconstructed samples of a left column along theprediction direction is used as the intra predictor. FIG. 4 illustratesexamples of bi-directional intra prediction for v+1˜v+8 directionalmodes. In FIG. 4, a predicted sample Pij is taken from a neighboringsample of the above row, and it has a corresponding reference sample Fijin the left column along the prediction direction. If the correspondingreference sample Fij is not located at the position of an integer pixel,Fij is generated with interpolation of integer pixels in the left columnaccording to the prediction direction. A final predicted sample P′ij iscalculated as a weighted sum of Pij and Fij as shown in Equation (5).

P′ij=α·Pij+(1−α)·Fij  Equation (5)

where α is a fraction from 0 to 1 and is selected according to thedirection of intra prediction together with the horizontal displacementj for v+1˜v+8 directional modes or with the vertical displacement i forh+1˜h+8 directional modes.

Out of the 35 intra prediction modes supported in the HEVC standard,three intra prediction modes are considered as Most Probable Modes(MPMs) for predicting a current intra prediction mode for a currentblock. Neighboring intra prediction modes of a left neighboring blockand an above neighboring block are included in the three MPMs. In casethe two neighboring intra prediction modes are the same directionalmode, or only one of the two neighboring intra prediction modes isavailable and is a directional mode, two neighboring directionsimmediately next to this directional mode are also included in the threeMPMs. DC mode and Planar mode are also considered as MPMs when the leftor above neighboring intra prediction mode is not directional or whenthe neighboring blocks are not available or not coded in intraprediction. A first MPM flag is signaled to indicate whether the currentintra prediction mode is identical to one of the three MPMs, if so,another flag is sent to indicate which of the three MPMs is selected; ifthe first MPM flag is false, the current intra prediction mode is anon-MPM mode and is explicitly signaled using a 5-bit fixed lengthcodeword.

The 33 angular modes shown in FIG. 1 can be expanded to a general casewith more or less angular modes, where each of the angular modes can berepresented by mode H+k or mode V+k, where H represents the direction ofHorizontal mode, V represents the direction of Vertical mode, and k=0,+−1, +−2, . . . +−K. An example of 65 angular modes for intra predictionis shown in FIG. 5, where k is ranged from −16 to 16, and mode H-16 andmode V-16 are the same mode as this mode refers to the predictiondirection from an upper-left corner to the center of the current block.FIG. 5 illustrates the 65 angular intra prediction modes with additional32 angular modes in between the original 33 angular modes of HEVC. The65 angular modes in FIG. 5 include modes H+16 to H-15 from bottom to topat the left boundary of the block and modes V-16 to V+16 from left toright at the upper boundary of the block.

In the HEVC standard, once a directional mode is decided, along theprediction direction, all the samples in the current block use the samepredictor value. If the predictor falls in between two reconstructedreference samples, a bi-linear filter is used to calculate the predictoras a weighted average of the two neighboring reconstructed samples. Forexample, P=[P1*a+P2(32−a)]/32, where P is the predictor, P1 and P2 arethe two neighboring reconstructed samples, and integer a represents adistance from the predictor P to P2, which is between 0 and 32inclusively.

A predictor error between original samples and predicted samples of acurrent block is further processed by transform and quantization aftergenerating the intra predictor for the current block. Quantizedcoefficients are divided into multiple 4×4 coefficient groups in anentropy coding engine, and the coding order of different coefficientgroups and scan order of coefficients in one coefficient group areselected according to the intra prediction mode and the transform sizeof the current block. Intra-mode-dependent scan is used for the codingorder of different coefficient groups and the scan order of coefficientsin one coefficient group if the transform size is smaller than or equalto 8×8, otherwise, diagonal scan is used for the coding order ofdifferent coefficient groups and the scan order of coefficients in onecoefficient group.

FIG. 6 illustrates a process of Multiple Parameter Intra prediction(MPI). MPI generates a final predictor for intra prediction bycalculating a weighted sum of several predictors. The final predictorP_(MPI)[i, j] of position (i, j) in a current block is defined inEquation (6).

P _(MPI)[i,j]=(αP _(HEVC)[i,k]+βP _(MPI)[i−1,j]+γP _(MPI)[i,j−1]+δP_(MPI)[i−1,j−1]+4)>>3   Equation (6)

where P_(HEVC)[i, j] is an initial predictor generated by intraprediction defined in the HEVC standard, and >> representsbit-shift-to-the-right. The final predictor P_(MPI)[i, j] of position(i, j) outside of the current block is equal to the reconstructed pixelas shown in Equation (7).

P _(MPI)[i,j]=REC[i,j] if i<0∥j<0  Equation (7)

The four parameters in Equation (6) added up to 8 (i.e. α+β+γ+δ=8), andthe strength of this post-processing is controlled in CU level and issignaled with up to 2 bits.

FIG. 7 illustrates a technique of generating a final predictor p [x,y]for a current block using a combination of filtered and unfilteredreference samples, where x and y are horizontal and vertical distancesfrom the block boundary. The sequences with unfiltered references r[x,−1] 704 and r [−1,y] 706 located around the current block 702 and afiltered predictor q [x,y] 708 are used to calculate the final predictorp [x,y]. The filtered predictor q[x,y] 708 is derived from filteredsamples s [x, −1] 710 and s [−1, y] 712 as shown in FIG. 7. The finalpredictor p[x,y] combines weighted values of the unfiltered references704 and 706 with the filtered predictor 708 according to Equation (8).

p[x,y]={(c ₁ ^((v)))»└y/d┘r[x,−1]−(c ₂ ^((v)) »└y/d┘)r[−1,−1]+(c ₁^((h)) »└x/d┘)r[−1,y]−(c ₂ ^((h)) »└x/d┘)r[−1,−1]+b[x,y]q[x,y]+64}»7  Equation (8)

where c₁ ^(v), c₂ ^(v), c₁ ^(h), c₂ ^(h) are stored predictionparameters, d=1 for block sizes up to 16×16, and d=2 for larger blocks.A normalization factor b[x,y] is defined in Equation (9).

b[x,y]=128−(c ₁ ^((v)) »└y/d┘)+(c ₂ ^((v)) »└y/d┘)−(c ₁ ^((v))»└y/d┘)+(c ₂ ^((h)) »└└y/d┘)   Equation (9)

FIG. 8A and FIG. 8B illustrate computing an intra predictor of a currentblock by Planar mode in intra prediction. A sample at the bottom-rightcorner of the current block is first predicted by either signaling orestimating using linear average of a corresponding left reference sampleand an above reference sample. Samples in the right most column arebi-linearly interpolated using a sample above the right most column ofthe current block and the bottom-right corner sample, and samples in thebottom row are bi-linearly interpolated using the sample at the left ofthe bottom row of the current block and the bottom-right corner sampleas shown in FIG. 8A. The remaining samples of the intra predictor arepredicted using similar bi-linear interpolation as shown in FIG. 8B.

SUMMARY

A method and apparatus for processing video data with neighboringreconstructed samples determined based on one or more predefinedcriteria in a video coding system are disclosed. Embodiments of a videocoding system receive input data associated with a current block in acurrent picture. The current block is checked with the one or morepredefined criteria during partitioning of the current block, and thecurrent block is set as a root block if the current block satisfies thepredefined criteria. One or more predefined criteria are not checked inone or more color components of one or more blocks in the current blockif the current block satisfies the one or more predefined criteria. Theone or more color components of one or more blocks in the current blockare encoded or decoded using neighboring reconstructed samples of theone or more color components of the current block as reference samplesif the current block is set to be a root block, otherwise, the one ormore color components of each block in the current block is encoded ordecoded using neighboring reconstructed samples of the one or more colorcomponents of each block in the current block as reference samples ifthe current block is not a root block. The reconstructed samples withinthe current block are not used as reference samples to encode or decodethe one or more color components of one or more blocks in the currentblock if the current block is set to be a root block. The method isapplied to intra prediction or any coding tool requiring neighboringreference samples or neighboring information. In an embodiment ofapplying the method to intra prediction, an intra predictor is generatedfor the one or more color components of each block in the current blockaccording to an intra prediction mode and the neighboring reconstructedsamples of the one or more color components of the current block if thecurrent block is set as a root block. An intra predictor for the one ormore color components of each block in the current block is generatedaccording to an intra prediction mode and neighboring reconstructedsamples of the one or more color components of each block in the currentblock if the current block is not set as a root block.

In some embodiments, the one or more color components only correspond toone or more chroma components as chroma blocks are smaller than thecorresponding luma block, so the method of defining root blocks forsharing neighboring reconstructed samples or neighboring information isonly applied to small chroma blocks, whereas in some other embodiments,the method is applied to all luma and chroma components.

In some embodiments, the one or more color components correspond to oneor more chroma components, the one or more chroma components of one ormore blocks in the current block are encoded or decoded usingneighboring reconstructed samples of the one or more chroma componentsof the current block as reference samples, and a luma component of eachblock in the current block is encoded or decoded using neighboringreconstructed samples of the luma component of each block in the currentblock as reference samples, if the current block is set to be a rootblock. Otherwise, one or more color components of each block in thecurrent block is encoded or decoded using neighboring reconstructedsamples of the one or more color components of each block in the currentblock as reference samples if the current block is not a root block. Inone embodiment, the method further comprises checking whether a rootblock has been set, and the current block is set to be a root block onlywhen the root block has not been set and the current block satisfies thepredefined criteria. The current block is a luma block or a chromablock. One of the predefined criteria may be related to a size of thecurrent block, in an embodiment, the current block satisfies thepredefined criterion if the size of the current block is less than,equal to, or less than or equal to a predefined threshold. The sizecorresponds to a luma sample size or a chroma sample size. In oneembodiment, one criterion is related to a size of the current block andanother criterion is related to a size of one children block split fromthe current block, and the current block satisfies the predefinedcriteria if the size of the current block is larger than, equal to, orlarger than or equal to a predefined threshold and the size of onechildren block is less than, equal to, or less than or equal to anotherpredefined threshold. The size of the children block corresponds to aluma sample size or a chroma sample size. In another embodiment, onecriterion is related to a size of the current block and anothercriterion is related to a splitting type for partitioning the currentblock.

In some embodiments, the predefined criteria are related to one or acombination of a size of the current block, a width of the currentblock, a height of the current block, a depth of the current block, anaverage depth of neighboring blocks of the current block, a splittingtype for partitioning the current block, a size of one children blocksplit from the current block, a width of one children block split fromthe current block, a height of one children block split from the currentblock, a depth of one children block split from the current block, andan average depth of neighboring blocks of one children block split fromthe current block. The size, width, and height correspond to a lumasample size, a luma sample width, and a luma sample height, or a chromasample size, a chroma sample width, and a chroma sample height. Someembodiments of the processing method further check if one children blocksplit from the current block satisfies one or more second criteria, andthe current block is set to be a root block if the current blocksatisfies the one or more predefined criteria and the children blocksatisfies the one or more second criteria. For example, the one or moresecond criteria are related to a size, width, height, both width andheight, or depth of the children block split from the current block. Allother children blocks split from the current block are not checked withthe one or more predefined criteria checked with the current block andthe one or more second criteria if the current block is set to be a rootblock.

In some embodiments, the processing method further comprises checking ifa parent block of the current block satisfies a second criterion, andthe current block is set to be a root block if the current blocksatisfies the one or more predefined criteria and the parent blocksatisfies the second criterion.

Luma samples within the root block or chroma samples within the rootblock are treated as unavailable when encoding or decoding the one ormore color components of one or more blocks in the root block, and asample filling process or an intra boundary sample generation processmay be applied to generate the unavailable samples when these luma orchroma samples are required for predicting the one or more block in theroot block. In some examples, the unavailable samples are generated bycopying adjacent samples of the unavailable samples or using one or moredefault values.

A root block position is set to be a top-left position of the currentblock, and a width and height of the root block is set equal to a widthand height of the current block if the current block is set to be theroot block.

Some embodiments of the processing method derive Most Probable Mode(MPMs) of the one or more color components of the one or more blocks inthe current block are derived from intra prediction modes of neighboringblocks of the current block if the current block is set to be a rootblock.

Aspects of the disclosure further provide an apparatus in a video codingsystem for receiving input data associated with a current block,checking if the current block satisfies one or more predefined criteriaduring partitioning, setting the current block to be a root block if thecurrent block satisfies the predefined criteria, and encoding ordecoding one or more color components of one or more blocks in thecurrent block using neighboring reconstructed samples of the one or morecolor components of the current block as reference samples if thecurrent block is set to be a root block.

Aspects of the disclosure further provide a non-transitory computerreadable medium storing program instructions for causing a processingcircuit of an apparatus to encode or decode video data by determiningreference samples based on one or more predefined criteria. Otheraspects and features of the invention will become apparent to those withordinary skill in the art upon review of the following descriptions ofspecific embodiments.

BRIEF DESCRIPTION OF DRAWINGS

Various embodiments of this disclosure that are proposed as exampleswill be described in detail with reference to the following figures,wherein like numerals reference like elements, and wherein:

FIG. 1 illustrates 33 angular intra prediction modes supported in theHEVC standard.

FIG. 2 illustrates exemplary reference samples filtered by an intrasmoothing filter for deriving an intra predictor for a current block.

FIG. 3A illustrates applying an intra gradient filtering to a predictorpredicted by Vertical mode in intra prediction.

FIG. 3B illustrates applying an intra gradient filtering to a predictorpredicted by an angular mode in intra prediction.

FIG. 4 illustrates an example of bi-directional intra prediction forv+1˜v+8 directional modes.

FIG. 5 illustrates an example of 65 angular intra prediction modes.

FIG. 6 illustrates an example of multi-parameter intra prediction.

FIG. 7 illustrates generating a final predictor for a current blockusing a combination of filtered and unfiltered reference samples.

FIGS. 8A and 8B illustrate generating a predictor for a current block byPlanar mode in intra prediction.

FIGS. 9A and 9B illustrate children blocks of a current block usereference samples of the current block for intra prediction according toembodiments of the present invention.

FIGS. 10A and 10 B illustrate sharing neighboring reference samplesdetermined based on predefined root blocks according to an embodiment ofthe present invention.

FIGS. 11A-11E illustrate neighboring reference samples for processingblock A to block E respectively according to an embodiment of thepresent invention.

FIGS. 12A-12C illustrate neighboring reference samples for processingblock C, blocks A to D, and block E respectively according to someembodiments of the present invention.

FIG. 13 is a flowchart illustrating an exemplary method according to anembodiment of the present invention.

FIG. 14 illustrates an exemplary system block diagram for a videoencoding system incorporating the video processing method according toembodiments of the present invention.

FIG. 15 illustrates an exemplary system block diagram for a videodecoding system incorporating the video processing method according toembodiments of the present invention.

DETAILED DESCRIPTION

It will be readily understood that modules and components of the presentinvention, as generally described and illustrated in the figures herein,may be arranged and designed in a wide variety of differentconfigurations. Thus, the following more detailed description of theembodiments of the systems and methods of the present invention, asrepresented in the figures, is not intended to limit the scope of theinvention, as claimed, but is merely representative of selectedembodiments of the invention.

Reference throughout this specification to “an embodiment”, “someembodiments”, or similar language means that a particular feature,structure, or characteristic described in connection with theembodiments may be included in at least one embodiment of the presentinvention. Thus, appearances of the phrases “in an embodiment” or “insome embodiments” in various places throughout this specification arenot necessarily all referring to the same embodiment, these embodimentscan be implemented individually or in conjunction with one or more otherembodiments. Furthermore, the described features, structures, orcharacteristics may be combined in any suitable manner in one or moreembodiments. One skilled in the relevant art will recognize, however,that the invention can be practiced without one or more of the specificdetails, or with other methods, components, etc. In other instances,well-known structures, or operations are not shown or described indetail to avoid obscuring aspects of the invention.

Neighboring reconstructed samples of one or more color components of acurrent block are used as reference samples for predicting the currentblock coded in intra prediction. The processing throughput is restricteddepending on the block size because the processor can only predict atmost the entire current block at once if the current block is coded inintra prediction. Parallel processing for multiple intra coded blocks isprohibited as prediction for each of these intra coded blocks cannot beconducted until corresponding neighboring reconstructed samples areavailable. The coding performance may be improved when video picturescan be partitioned into small blocks, however, the processing throughputcannot be improved if there are small blocks predicted by intraprediction. Embodiments of the present invention improve the processingthroughput by setting a root block for blocks coded in intra predictionor processed by any coding tool requiring neighboring reconstructedsamples or neighboring information, so same neighboring referencesamples along the root block boundary are shared within one or morecolor components of one or more blocks in the root block.

In some embodiments, a root block is defined by one or more predefinedcriteria or a predefined size, and the root block is used to determinereference samples for blocks coded in normal intra modes, Linear Model(LM) mode for predicting chroma from luma in intra prediction, and intrainter mode. An exemplary restriction for defining root blocks restrictsall root blocks to be within a frame boundary, so root blocks are notallowed to exceed the frame boundary.

Setting Current Block as Root Block if Current Block SatisfyingPredefined Criteria

In various embodiments of the present invention, a current block ischecked with one or more predefined criteria during partitioning, and ifthe current block satisfies the one or more predefined criteria, thecurrent block is set to be a root block. One or more color components ofone or more blocks in the current block use neighboring reconstructedsamples along a boundary of the current block for intra prediction orany tool that requires neighboring reconstructed samples or neighboringinformation if the current block is set as a root block. One or morecolor components of the current block may be partitioned into multipleblocks, and once the current block is set as a root block, neighboringreconstructed samples or neighboring information within the currentblock cannot be used by any block in the current block. For example,each chroma block in the current block cannot retrieve neighboringsamples inside the current block as reference samples for intraprediction when the current block is set as a root block. The one ormore color components of one or more blocks in the current block willnot be checked with the same predefined criteria if the current blockalready satisfies the predefined criteria. The one or more colorcomponents of each block in the current block use neighboringreconstructed samples along a boundary of each block in the currentblock if the current block does not satisfy the one or more predefinedcriteria. For example, an encoder or decoder generates an intrapredictor for each block in the current block according to an intraprediction mode and the neighboring reconstructed samples of one or morecolor components of the current block if the current block is set as aroot block; otherwise the encoder or decoder generates an intrapredictor for each block in the current block according to an intraprediction mode and neighboring reconstructed samples of one or morecolor components of each block in the current block if the current blockis not a root block.

The one or more color components include both luma and chroma componentsaccording to one embodiment; and the one or more color components onlyinclude the luma component or one or more of the chroma componentsaccording to other embodiments. In an exemplary embodiment, one or morechroma components of one or more blocks in a current block are encodedor decoded using neighboring reconstructed samples of the one or morechroma components of the current block as reference samples if thecurrent block is set to be a root block; and a luma component of eachblock in the current block is encoded or decoded using neighboringreconstructed samples of the luma component of each block in the currentblock as reference samples if the current block is set to be a rootblock.

In one embodiment, a root block corresponds to a current block isdefined for deriving Most Probable Modes (MPMs) for encoding or decodingthe current block by intra prediction. According to the HEVC standard,the MPMs of each block inside the current block are derived from intraprediction modes of above and left neighboring blocks of each block inthe current block, where the above or left neighboring block may also bewithin the current block. In this embodiment, the MPMs of each blockinside the current block are derived from intra prediction modes ofabove and left neighboring block of the current block if the currentblock is set to be a root block. Intra prediction modes of neighboringblocks within the same root block cannot be used for MPM derivation.

In some other embodiments of utilizing a root block defined by one ormore predefined criteria, for blocks within the root block, a samplereconstruction process, such as a predictor generation process, does notallow to use samples within the root block. The samples may refer toprediction samples or reconstruction samples of one or more colorcomponents. The sample reconstruction process uses boundary samples ofthe root block as reference samples for processing all blocks within theroot block.

Intra prediction is referred in the following embodiments as arepresentative tool that uses neighboring reconstructed samples orneighboring information; however, various embodiments in the followingmay be applied to any other coding tool that requires neighboringreconstructed samples or neighboring information for encoding ordecoding.

In one embodiment, one or more color components of the current blockcannot be partitioned into children blocks once it is set as a rootblock, and the only block in the current block uses neighboringreconstructed samples of the one or more color components of the currentblock for intra prediction. In this embodiment, the one or more colorcomponents of the current block can be further partitioned into childrenblocks only if it is not a root block. In another embodiment, one ormore color components of the current block can be further partitionedinto children blocks regardless whether it is a root block, and allchildren blocks use neighboring reconstructed samples of the one or morecolor components of the current block as reference samples for intraprediction.

An embodiment of a criterion is related to a size of the current block,for example, the current block satisfies the criterion if the size ofthe current block is less than or equal to a predefined threshold, inanother example, the current block satisfies the criterion if the sizeof the current block is less than a predefined threshold, and in yetanother example, the current block satisfies the criterion if the sizeof the current block is equal to a predefined threshold. The size may bereferred to a luma sample size or a chroma sample size. One or morecolor components of one or more blocks inside the current block sharereference samples along the boundary of the current block for intraprediction and the same criterion is not checked in any of the one ormore color components of the one or more blocks inside the current blockonce the current block satisfies the criterion. Some examples of thepredefined threshold for the size are 4, 8, 16, 32, 64, 128, 256, 512,1024, 2048, and 4096 samples. The present invention may be applied toluma component, chroma components, or both luma and chroma components.In an embodiment of applying the present invention only to chromacomponents, the current block is a chroma block and if a size of thecurrent block is equal to a predefined threshold, for example, 16 chromasamples, one or more color components of one or more blocks inside thecurrent block will use the same neighboring reconstructed samples alongthe current block as reference samples for intra prediction. The currentblock may be further split into smaller coding blocks, but these smallercoding blocks share the same reference samples for intra prediction andthe same criterion is not checked again in any of the coding blocks inthe current block.

Another embodiment of the criterion is related to a width or height ofthe current block, for example, the current block satisfies thecriterion if the width of the current block is less than or equal to apredefined threshold, in another example, the current block satisfiesthe criterion if the width of the current block is less than apredefined threshold, and in yet another example, the current blocksatisfies the criterion if the width of the current block is equal to apredefined threshold. The width or height of the current blockcorresponds to a luma sample width or a luma sample height of thecurrent block or a chroma sample width or a chroma sample height of thecurrent block. One or more color components of one or more blocks in thecurrent block use reference samples along the current block boundary forintra prediction and the same criterion is not checked in one or morecolor components of one or more blocks in the current block once thecurrent block satisfies the criterion. An example of the criterionrelated to a height of the current block checks if the height of thecurrent block is less than or equal to a predefined threshold, and thecurrent block satisfies the criterion if the height of the current blockis less than or equal to the predefined threshold. In another example,the current block satisfies the criterion if the height of the currentblock is equal to a predefined threshold or if the height of the currentblock is less than a predefined threshold. Similarly, one or more colorcomponents of one or more blocks in the current block use referencesamples along the current block boundary for intra prediction and thesame check is not performed in the one or more color components of oneor more blocks in the current block when the current block satisfies thecriterion. Some examples of the predefined threshold for the width orheight are 2, 4, 8, 16, 32, 64, and 128 luma or chroma samples.

Some other embodiments of a criterion are related to a size and a widthor height of the current block, for example, the current block satisfiesthe criterion if the size of the current block is less than or equal toa predefined threshold A, or the width or height of the current block isless than or equal to a predefined threshold B, in another example, thecurrent block satisfies the criterion if the size of the current blockis less than a predefined threshold A, or the width or height of thecurrent block is less than a predefined threshold B, and in yet anotherexample, the current block satisfies the criterion if the size of thecurrent block is equal to a predefined threshold A, or the width orheight of the current block is equal to a predefined threshold B. One ormore color components of one or more blocks inside the current blockshare reference samples along the boundary of the current block forintra prediction and the same criterion is not checked in any of the oneor more color components of one or more blocks inside the current blockonce the current block satisfies the criterion. Some examples of thepredefined threshold A for the size are 4, 8, 16, 32, 64, 128, 256, 512,1024, 2048, and 4096 luma or chroma samples. Some examples of thepredefined threshold B for the width or height are 2, 4, 8, 16, 32, 64,and 128 luma or chroma samples. The present invention may be applied toluma component, chroma components, or both luma and chroma components.In an embodiment of applying the present invention only to chromacomponents, the current block is a chroma block and if a size of thecurrent block is equal to a predefined threshold A, for example, 16chroma samples, or a width of the current block is equal to a predefinedthreshold B, for example, 2 chroma samples, one or more color componentsof one or more blocks inside the current block will use the sameneighboring reconstructed samples along the current block as referencesamples for intra prediction. The current block may be further splitinto smaller coding blocks, but these smaller coding blocks share thesame reference samples for intra prediction and the same criterion isnot checked again in any of the coding blocks in the current block.

Some other embodiments of the predefined criteria relate to both widthand height of a current block. The current block is set as a root blockwhen the width satisfies one predefined criterion and the heightsatisfies one predefined criterion, and one or more color components ofone or more blocks in the current block share reference samples of thecurrent block for intra prediction. In one example, a root block forsharing neighboring reference samples is always square, and in anotherexample, a root block for sharing neighboring reference samples can besquare or non-square. In one exemplary embodiment, for a current blockwith a width larger than or equal to its height, if the width is lessthan a predefined threshold A and the height is less than anotherpredefined threshold B, one or more children blocks in the current blockuse reference samples along the boundary of the current block for intraprediction and the criteria will not be checked in the one or morechildren blocks. Some examples of the predefined threshold A for thewidth are 2, 4, 8, 16, 32, 64, and 128 luma samples or chroma samples,and some examples of the predefined threshold B for the height are 2, 4,8, 16, 32, 64, and 128 luma samples or chroma samples. The combinationof threshold A and threshold B (thresA, thresB) can be (8, 2), (16, 2),(32, 2), (64, 2), (128, 2), (8, 4), (16, 4), (32, 4), (64, 4), (128, 4),(16, 8), (32, 8), (64, 8), (128, 8), (32, 16), (64, 16), (128, 16), (64,32), (128, 32) or (128, 64). For example, a combination of threshold Aand threshold B is (128, 16), and a current block with a size equal to64×8 satisfies the criteria defined by the two thresholds. If thecurrent block is further split, for example, the current block is splitby vertical binary tree partitioning into two 32×8 children blocks, thechildren blocks in the current block use same reference samples alongthe boundary of the current block for intra prediction, and the criteriadefined by the two thresholds are not checked in the children blocks. Inanother embodiment, a height of a current block is larger than or equalto its width, and the current block satisfies predefined criteria if theheight is less than a predefined threshold A and the width is less thananother predefined threshold B. One or more color components of allchildren blocks in the current block use reference samples along theboundary of the current block for intra prediction and the predefinedcriteria will not be checked in the one or more color components of thechildren blocks if the current block satisfies the predefined criteria.Some examples of the threshold A for the height are 2, 4, 8, 16, 32, 64,and 128 luma samples or chroma samples, and some examples of thethreshold B for the width are 2, 4, 8, 16, 32, 64, and 128 luma samplesor chroma samples. A combination of the threshold A and threshold B(thresA, thresB) can be (8, 2), (16, 2), (32, 2), (64, 2), (128, 2), (8,4), (16, 4), (32, 4), (64, 4), (128, 4), (16, 8), (32, 8), (64, 8),(128, 8), (32, 16), (64, 16), (128, 16), (64, 32), (128, 32) or (128,64). For example, a block satisfies predefined criteria when a height isless than or equal to 64 and a width is less than or equal to 8, and inthis example, an 8 by 64 current block is further split into two 8 by 32children blocks by horizontal binary tree partitioning, these twochildren blocks use same reference samples along the boundary of the8×64 current block for intra prediction and predefined criteria will notbe checked in the children blocks as the current block already satisfiesthe predefined criteria.

Some other embodiments of a criterion are related to a size, a width,and a height of the current block, for example, the current blocksatisfies the criterion if the size of the current block is less than orequal to a predefined threshold A, or the width and height of thecurrent block are less than or equal to a predefined threshold B andthreshold C, respectively, in another example, the current blocksatisfies the criterion if the size of the current block is less than apredefined threshold A, or the width and the height of the current blockare less than a predefined threshold B and threshold C, respectively,and in yet another example, the current block satisfies the criterion ifthe size of the current block is equal to a predefined threshold A, orthe width and the height of the current block are equal to a predefinedthreshold B and threshold C, respectively. One or more color componentsof one or more blocks inside the current block share reference samplesalong the boundary of the current block for intra prediction and thesame criterion is not checked in any of the one or more color componentsof one or more blocks inside the current block once the current blocksatisfies the criterion. Some examples of the predefined threshold A forthe size are 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, and 4096 lumaor chroma samples. Some examples of the predefined threshold B andthreshold C for the width and height are 2, 4, 8, 16, 32, 64, and 128luma or chroma samples. The present invention may be applied to lumacomponent, chroma components, or both luma and chroma components. In anembodiment of applying the present invention only to chroma components,the current block is a chroma block and if a size of the current blockis equal to a predefined threshold A, for example, 16 chroma samples, ora width of the current block is equal to a predefined threshold B, forexample, 2 chroma samples, and a height of the current block is equal toa predefined threshold C, for example, 8 chroma samples, one or morecolor components of one or more blocks inside the current block will usethe same neighboring reconstructed samples along the current block asreference samples for intra prediction. The current block may be furthersplit into smaller coding blocks, but these smaller coding blocks sharethe same reference samples for intra prediction and the same criterionis not checked again in any of the coding blocks in the current block.

In some other embodiments, the predefined criterionis related to a depthof a current block, for example, the depth is a QuadTree (QT) depth or aMulti-Tree (MT) depth. In one embodiment, a current block satisfies apredefined criterion when a QT depth, MT depth, or both QT depth and MTdepth of the current block is larger than, equal to, or larger than orequal to a predefined threshold. One or more children blocks in thecurrent block share reference samples along the current block boundaryfor intra prediction and the same predefined criterion is not checked inone or more children blocks in the current block if the current blocksatisfies the predefined criterion. A possible predefined threshold forthe depth may be 1, 2, 3, 4, or 5. For example, a predefined thresholdis 2 and a block with a depth larger than 2 is set to be a root blockfor sharing reference samples along the root block. During partitioning,if a current block with a depth larger than 2 is further split, childrenblocks split from the current block use same reference samples along thecurrent block boundary for intra prediction and the criterion related tothe depth will not be checked in the children blocks. In anotherexample, a predefined criterion is related to a weighted depthcalculated from both QT depth and MT depth, and a current blocksatisfies the predefined criterion if the weighted depth is larger thana predefined threshold. The weighted depth, ave_depth, can be calculatedby avg_depth=(A*QT depth+(2{circumflex over ( )}B−A)*MT depth>>B). Inone example, A is equal to 3 and B is equal to 3. One or more childrenblocks use reference samples along the boundary of the current block forintra prediction and the predefined criterion is not checked with theone or more children blocks if the current block already satisfies thepredefined criterion.

In yet another embodiment, a predefined criterion is related to anaverage QT depth or an average MT depth of neighboring blocks of acurrent block. For example, a current block satisfies the predefinedcriterion if an average QT depth or MT depth of neighboring blocks ofthe current block is larger than a predefined threshold, and one or morechildren blocks in the current block use reference samples along thecurrent block boundary for intra prediction if the current blocksatisfies the predefined criterion. Some examples of the predefinedthreshold for the average QT depth or average MT depth of theneighboring blocks are 1, 2, 3, 4, and 5.

A top-left position of a root block is sharedRootPos, a width of theroot block is sharedRootWidth, and a height of the root block issharedRootHeight. In one embodiment, a current block is set as a rootblock during partitioning if the current block satisfies one or morepredefined criteria and the root block has not been set. A top-leftposition of the root block is set to be a top-left position of thecurrent block and a width and a height of the root block equal to awidth and a height of the current block if the current block is set asthe root block, otherwise, the root block is not set.

Setting Current Block as Root Block if One Children Block SatisfyingPredefined Criteria

In some embodiments of the present invention, a current block satisfiesone of the predefined criteria by comparing a predefined threshold withone children block split from the current block. The current block isset as a root block for sharing reference samples if the current blocksatisfied the predefined criterion according to one children block splitfrom the current block. Reference samples of the current block are usedby all children blocks in the current block if the current block is setas a root block. An embodiment of a predefined criterion is related to asize of one children block, and the size corresponds to a luma samplesize or a chroma sample size. For example, a current block is set as aroot block if a size of one children block split from the current blockis less than, equal to, or less than or equal to a predefined threshold,and the predefined threshold for the size can be 4, 8, 16, 32, 64, 128,256, 512, 1024, 2048, or 4096 luma samples or chroma samples.

FIG. 9A and FIG. 9B illustrate two examples of setting a current blockto be a root block according to a predefined criterion related to a sizeof a children block in the current block. In the examples shown in FIGS.9A and 9B, the predefined criterion checks if a size of any childrenblock in the current block is less than 64 luma samples. In FIG. 9A, acurrent block 92 with a size equal to 64 luma samples is split into fourchildren block by quadtree partitioning, and the size of each childrenblock is 16 luma samples. The current block 92 in FIG. 9A satisfies thepredefined criterion because the size of the children blocks is lessthan 64, so the current block 92 is set as a root block for sharingreference samples. All the four children blocks in the current block 92(or called all four blocks inside the current block 92) use referencesamples 94 of the current block for intra prediction as shown in FIG.9A. A size of a current block 96 in FIG. 9B is 128 luma samples, and thecurrent block 96 is split into three children blocks by vertical ternarytree partitioning. Sizes of the children blocks are 32, 64, and 32 lumasamples. The current block 96 is set as a root block for sharingreference samples as the size of at least one children block is lessthan 64 luma samples. The three children blocks in the current block 96use reference samples 98 of the current block for intra prediction.

In another example, FIG. 9A and FIG. 9B illustrate two examples ofsetting a current block to be a root block according to a predefinedcriterion related to a corresponding chroma size of a children block inthe current block. In the examples shown in FIGS. 9A and 9B, thepredefined criterion checks if a chroma size of any children block inthe current block is less than 16 chroma samples. In FIG. 9A, a currentblock 92 with a size equal to 16chroma samples is split into fourchildren block by quadtree partitioning, and the chroma size of eachchildren block is 4 chroma samples. The current block 92 in FIG. 9Asatisfies the predefined criterion because the chroma size of thechildren blocks is less than 16 chroma samples, so the current block 92is set as a root block for sharing reference samples. In one embodiment,only using the root block neighboring samples for intra prediction isapplied to chroma components only. One or more chroma blocks in thecurrent block 92 use reference samples 94 of the current block for intraprediction as shown in FIG. 9A, and one or more luma blocks in thecurrent block 92 use reference samples along each luma block's boundary.A size of a current block 96 in FIG. 9B is 32 chroma samples, and thecurrent block 96 is split into three children blocks by vertical ternarytree partitioning. The chroma sizes of the children blocks are 8, 16,and 8 chroma samples. The current block 96 is set as a root block forsharing reference samples as the chroma size of at least one childrenblock is less than 16 chroma samples. The chroma blocks in the currentblock 96 use reference samples 98 of the current block for intraprediction, and one or more luma blocks in the current block 92 usereference samples along each luma block's boundary.

In another embodiment, a width or height of one children block in thecurrent block is checked with a predefined threshold to determinewhether the current block satisfies the predefined criterion. Forexample, the current block satisfies the predefined criterion if thewidth of one children block in the current block is less than, equal to,or less than or equal to a predefined threshold. In some other examples,the current block satisfies the criterion if the height of one childrenblock in the current block is less than, equal to, or less than or equalto a predefined threshold. All children blocks in the current block usereference samples along the current block boundary for intra predictionand the predefined criterion is not checked in other children blocks inthe current block if the current block satisfies the predefinedcriterion. The predefined threshold for the width or height can be 4, 8,16, 32, 64, and 128 luma samples or chroma samples depending on whetherthe current block is a luma block or a chroma block. In an example, thepredefined threshold is 8 chroma samples and a current block satisfiesthe criterion if a width of one children block in the current block isless than 8 chroma samples, if splitting a 8×8 chroma block into two 4×8children blocks, each of these two children blocks uses referencesamples along the boundary of the 8×8 chroma block instead of referencesamples along the boundary of the children block, and the same criterionis not checked in the other 4×8 children block in the 8×8 chroma block.In another example, a current block satisfies the criterion if a heightof one children block in the current block is less than or equal to 8chroma samples. In this example, if an 8×16 chroma block is furthersplit into two 2×16 children blocks and one 4×16 child block, thesethree children blocks use reference samples along the boundary of the8×16 chroma block and the criterion is not checked in the other childrenblocks.

In another embodiment, a size and a width or height of one childrenblock in the current block is checked with a predefined threshold todetermine whether the current block satisfies the predefined criterion.For example, the current block satisfies the predefined criterion if thesize of one children block in the current block is less than, equal to,or less than or equal to a predefined threshold A, or the width of onechildren block in the current block is less than, equal to, or less thanor equal to a predefined threshold B. In some other examples, thecurrent block satisfies the criterion if the size of one children blockin the current block is less than, equal to, or less than or equal to apredefined threshold A, or the height of one children block in thecurrent block is less than, equal to, or less than or equal to apredefined threshold B. All children blocks in the current block usereference samples along the current block boundary for intra predictionand the predefined criterion is not checked in other children blocks inthe current block if the current block satisfies the predefinedcriterion. The predefined threshold A for the size can be 4, 8, 16, 32,64, 128, 256, 512, 1024, 2048, or 4096 luma samples or chroma samplesdepending on whether the current block is a luma block or a chromablock. The predefined threshold B for the width or height can be 4, 8,16, 32, 64, and 128 luma samples or chroma samples depending on whetherthe current block is a luma block or a chroma block. In an example, thepredefined threshold A is 16 chroma samples, and the predefinedthreshold B is 4 chroma samples and a current block satisfies thecriterion if a size of one children block in the current block is lessthan or equal to 16 chroma samples, or a width of one children block inthe current block is less than or equal to 4 chroma samples. In oneexample, if an 8×8 chroma block is split into two 4×8 children blocks,each of these two children blocks uses reference samples along theboundary of the 8×8 chroma block instead of reference samples along theboundary of the children block, and the same criterion is not checked inthe other 4×8 children block in the 8×8 chroma block. In anotherexample, if an 8×8 chroma block is split into two 2×8 children blocksand one 4×8 children block, each of these three children blocks usesreference samples along the boundary of the 8×8 chroma block instead ofreference samples along the boundary of the children block, and the samecriterion is not checked in all of the children block in the 8×8 chromablock.

In another embodiment, predefined criteria are related to both the widthand height of a children block of a current block. For example, acurrent block is set as a root block if a width of one children block isless than a predefined threshold A and a height of the children block isless than another predefined threshold B, where the width of thechildren block in the current block is larger than or equal to itsheight. All children blocks in the current block share reference samplesof the current block when the current block is set as a root block. Acombination of threshold A for the width and threshold B for the height(thresA, thresB) can be (8, 2), (16, 2), (32, 2), (64, 2), (128, 2), (8,4), (16, 4), (32, 4), (64, 4), (128, 4), (16, 8), (32, 8), (64, 8),(128, 8), (32, 16), (64, 16), (128, 16), (64, 32), (128, 32), and (128,64). In another example, a current block is set as a root block if aheight of one children block is less than a predefined threshold A and awidth of the children block is less than another predefined threshold B,where the height of the children block in the current block is largerthan or equal to its width. All children blocks in the current blockshare reference samples of the current block when the current block isset as a root block. A combination of threshold A for the height andthreshold B for the width (thresA, thresB) can be (8, 2), (16, 2), (32,2), (64, 2), (128, 2), (8, 4), (16, 4), (32, 4), (64, 4), (128, 4), (16,8), (32, 8), (64, 8), (128, 8), (32, 16), (64, 16), (128, 16), (64, 32),(128, 32), and (128, 64).

In another embodiment, predefined criteria are related to a size, andboth the width and height of a children block of a current block. Forexample, a current block is set as a root block if a size of one of thechildren block is less than a predefined threshold A, or a width of onechildren block is less than a predefined threshold B and a height of thechildren block is less than another predefined threshold C, where theheight of the children block in the current block is larger than orequal to its width. All children blocks in the current block sharereference samples of the current block when the current block is set asa root block. The predefined threshold A for the size can be 4, 8, 16,32, 64, 128, 256, 512, 1024, 2048, or 4096 luma samples or chromasamples depending on whether the current block is a luma block or achroma block. A combination of threshold B for the width and threshold Cfor the height (thresC, thresB) can be (8, 2), (16, 2), (32, 2), (64,2), (128, 2), (8, 4), (16, 4), (32, 4), (64, 4), (128, 4), (16, 8), (32,8), (64, 8), (128, 8), (32, 16), (64, 16), (128, 16), (64, 32), (128,32), and (128, 64). In another example, a current block is set as a rootblock if a size of one of the children block is less than a predefinedthreshold A, or a height of one children block is less than a predefinedthreshold B and a width of the children block is less than anotherpredefined threshold C, where the width of the children block in thecurrent block is larger than or equal to its height. All children blocksin the current block share reference samples of the current block whenthe current block is set as a root block. The predefined threshold A forthe size can be 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, or 4096luma samples or chroma samples depending on whether the current block isa luma block or a chroma block. A combination of threshold B for thewidth and threshold C for the height (thresB, thresC) can be (8, 2),(16, 2), (32, 2), (64, 2), (128, 2), (8, 4), (16, 4), (32, 4), (64, 4),(128, 4), (16, 8), (32, 8), (64, 8), (128, 8), (32, 16), (64, 16), (128,16), (64, 32), (128, 32), and (128, 64).

In yet another embodiment, a current block satisfies a predefinedcriterion when a QT depth, MT depth, or both QT depth and MT depth ofone children block split from the current block is larger than, equalto, or larger than or equal to a predefined threshold. All childrenblocks in the current block use reference samples along the currentblock boundary and the predefined criterion is not checked in the otherchildren blocks if the current block satisfies the predefined criterion.For example, a current block is set as a root block during thepartitioning process when a QT depth or MT depth of any children blockin the current block is larger than, equal to, or larger than or equalto a predefined threshold. All children blocks use reference samples ofthe current block for intra prediction when the current block is set asa root block for sharing reference samples. The predefined threshold forthe depth may be 1, 2, 3, 4, or 5. In another embodiment, a currentblock is set as a root block if an average depth calculated by both QTdepth and MT depth of any children block is larger than, equal to, orlarger than or equal to a predefined threshold, and all children blocksin the current block use reference samples of the current block when thecurrent block is a root block. The threshold can be 1, 2, 3, 4, or 5.The average depth may be calculated by avg_depth=(A*QTdepth+(2{circumflex over ( )}B−A)*MT depth>>B). In one example, A isequal to 3 and B is equal to 3.

Another embodiment of a predefined criterion is related to an average QTdepth or MT depth of neighboring blocks of one children blockpartitioned from a current block. The current block is set as a rootblock if the average QT depth or MT depth of the neighboring blocks ofone children block is larger than, equal to, or larger than or equal toa predefined threshold. All children blocks in the current block usereference samples of the current block when the current block is set asa root block, and the predefined threshold for the average QT depth orMT depth of the neighboring blocks can be 1, 2, 3, 4, or 5.

In one embodiment, a current block is set as a root block duringpartitioning if one children block split from the current blocksatisfies one or more predefined criteria and the root block has notbeen set. A top-left position of the root block is set to be a top-leftposition of the current block, and a width and a height of the rootblock equal to a width and a height of the current block if the currentblock is set as the root block, otherwise, the root block is not set.

Setting Current Block as Root Block based on Multiple Criteria

In various embodiments of the present invention, a current block ischecked with one or more criteria and is set to be a root block forsharing reference samples if the one or more criteria are satisfied.Most of the previously described embodiments determine whether a currentblock is a root block according to only one criterion, in the followingembodiments, multiple criteria are checked to judge whether a currentblock is a root block for sharing reference samples. An exemplaryembodiment of engaging multiple criteria checking sets a current blockas a root block if the current block satisfies criterion A and onechildren block split from the current block satisfies criterion B.Neighboring reconstructed samples of one or more color components of thecurrent block are used by all children blocks within the current blockfor intra prediction once the current block is set as a root block. Thesame multiple criteria checking will not be applied to the childrenblocks of the current block after setting the current block to be a rootblock. In one embodiment, a current block is a root block if a size ofthe current block satisfies criterion A and a size of one children blocksplit from the current block satisfies criterion B. For example, acurrent block is set as a root block if a size of the current block isless than or equal to a predefined threshold and a size of at least onechildren block is less than or equal to another predefined threshold. Insome alternative examples, a current block is set as a root block if asize of the current block is equal to a predefined threshold and a sizeof at least one children block is equal to another predefined threshold,or a current block is set as a root block if a size of the current blockis less than a predefined threshold and a size of at least one childrenblock is less than another predefined threshold. All children blockswill use reference samples of the current block for intra prediction ifthe current block is a root block. The predefined threshold for the sizemay be 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, or 4096 luma samplesor chroma samples.

In another embodiment, a current block is set as a root block if a widthof the current block is larger than, equal to, or larger than or equalto a predefined threshold and a width of at least one children block isless than, or equal to, or less than or equal to another predefinedthreshold, where each of the predefined thresholds for the width may be4, 8, 16, 32, 64, or 128 luma samples or chroma samples. All childrenblocks use reference samples of the current block for intra predictionwhen the current block is set as a root block. In another embodiment, acurrent block is set as a root block if a height of the current block isequal to a predefined threshold and a height of any children block isless than another predefined threshold. In yet another embodiment, acurrent block is set as a root block if width and height of the currentblock satisfies criteria A and B and width and height of one childrenblock in the current block satisfies criteria C and D. Sizes of acurrent block and children blocks partitioned from the current block maybe represented by depths, so in some embodiments, the current block isset as a root block during partitioning if a QT depth or MT depth of thecurrent block is less than or equal to a predefined threshold and a QTdepth or MT depth of at least one children block is larger than or equalto another predefined threshold. All children blocks in the currentblock use reference samples of the current block if the current block isset as a root block. In one embodiment, a current block is set as a rootblock if a first average depth calculated by both QT depth and MT depthof the current block is equal to a predefined threshold and a secondaverage depth calculated by QT depth and MT depth of any children blockis equal to another predefined threshold. An example of the averagedepth is calculated by avg_depth=(A*QT depth+(2{circumflex over( )}B−A)*MT depth>>B), where A and B are integers. In anotherembodiment, a current block is set as a root block if an averageneighboring QT depth or MT depth of the current block is less than orequal to a predefined threshold and an average neighboring QT depth orMT depth of at least one children block is larger than or equal toanother predefined threshold. All children blocks use reference samplesof the current block if the current block is set as a root block. Thepredefined threshold for the depth may be 1, 2, 3, 4, or 5.

In another embodiment, a current block is set as a root block if a sizeof the current block is larger than, equal to, or larger than or equalto a predefined threshold A, or a width of the current block is largerthan, equal to, or larger than or equal to a predefined threshold B anda size of the current block is less than, or equal to, or less than orequal to a predefined threshold A′, or a width of at least one childrenblock is less than, or equal to, or less than or equal to anotherpredefined threshold B′, where each of the predefined thresholds for thesize may be 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, or 4096 lumasamples or chroma samples, and for the width may be 2, 4, 8, 16, 32, 64,or 128 luma samples or chroma samples. All children blocks use referencesamples of the current block for intra prediction when the current blockis set as a root block.

In another embodiment, a current block is set as a root block if a sizeof the current block is larger than, equal to, or larger than or equalto a predefined threshold A, or a width of the current block is largerthan, equal to, or larger than or equal to a predefined threshold Band aheight of the current block is larger than, equal to, or larger than orequal to a predefined threshold C and a size of the current block isless than, or equal to, or less than or equal to a predefined thresholdA′, or a width of at least one children block is less than, or equal to,or less than or equal to another predefined threshold B′ and a width ofat least one children block is less than, or equal to, or less than orequal to another predefined threshold C′, where each of the predefinedthresholds for the size may be 4, 8, 16, 32, 64, 128, 256, 512, 1024,2048, or 4096 luma samples or chroma samples, and for the width orheight may be 2, 4, 8, 16, 32, 64, or 128 luma samples or chromasamples. All children blocks use reference samples of the current blockfor intra prediction when the current block is set as a root block.

In some other embodiments, a current block is set as a root block if thecurrent block satisfies criterion A and its parent block satisfiescriterion B. Neighboring reconstructed samples of the current block areused for all children blocks within the current block and the criteriacheck will not be applied to all children blocks once the current blockis set to be a root block. For example, a current block is set as a rootblock if a size of the current block is less than or equal to a firstthreshold and a size of its parent block is larger than a secondthreshold, where the first or second threshold may be 4, 8, 16, 32, 64,128, 256, 512, 1024, 2048, or 4096 luma samples or chroma samples. Inanother embodiment, a current block is set to be a root block if a widthof the current block is less than or equal to a predefined threshold anda width of a parent block of the current block is larger than anotherpredefined threshold, where the predefined thresholds may be 4, 8, 16,32, 64, or 128 luma samples or chroma samples. In an embodiment, when awidth of a current block is larger than or equal to its height, acurrent block is set as a root block if a width of a parent block islarger than predefined threshold A and a height of the parent block islarger than another predefined threshold B, and a width of the currentblock is less than or equal to the predefined threshold A and a heightof the current block is less than or equal to the predefined thresholdB. The predefined threshold A can be 2, 4, 8, 16, 32, 64, or 128 lumasamples or chroma samples, and the predefined threshold B can be 2, 4,8, 16, 32, 64, or 128 luma samples or chroma samples. A combination ofthreshold A and threshold B, (thresA, thresB), can be (8, 2), (16, 2),(32, 2), (64, 2), (128, 2), (8, 4), (16, 4), (32, 4), (64, 4), (128, 4),(16, 8), (32, 8), (64, 8), (128, 8), (32, 16), (64, 16), (128, 16), (64,32), (128, 32), or (128, 64).

In another embodiment, a current block is set as a root block forsharing reference samples if a QT depth or MT depth of a parent block isless than or equal to a predefined threshold and a QT depth or MT depthof the current block is larger than or equal to the predefinedthreshold. One or more children blocks in the current block usereference samples of the current block if the current block is set as aroot block. The predefined threshold for the depth may be 1, 2, 3, 4, or5. In another embodiment, a current block is set as a root block if anaverage neighboring block QT depth or MT depth of a parent block is lessthan or equal to a predefined threshold and an average neighboring blockQT depth or MT depth of the current block is larger than or equal to thepredefined threshold. The predefined threshold for the averageneighboring block QT depth or MT depth can be 1, 2, 3, 4, or 5.

In some embodiments of engaging multiple criteria checking, a currentblock is set as a root block if the current block satisfies two or morecriteria. In an embodiment of applying multiple criteria checking, acurrent block is set as a root block if a size of the current blocksatisfies criterion A and partitioning of the current block satisfiescriterion B. The size of the current block corresponds to a luma samplesize or a chroma sample size. For example, beside checking the size ofthe current block with criterion A, a split flag for partitioning thecurrent block or a splitting type applied to the current block ischecked with criterion B, and the current block is set as a root blockif both criteria are satisfied. One or more children blocks of thecurrent block use neighboring reconstructed samples of one or more colorcomponents of the current block as reference samples for intraprediction if the current block is set to be a root block. Once the rootblock is set, the multiple criteria checking is not applied to the oneor more children blocks in the current block. The split flag mayindicate whether a particular splitting type is used to partition thecurrent block, for example, a quadtree partitioning is applied topartition the current block if the split flag is true. Some examples ofthe splitting type are quadtree partitioning, horizontal binary treepartitioning, vertical binary tree partitioning, horizontal ternary treepartitioning, and vertical ternary tree partitioning. Each childrenblock in the current block uses neighboring reconstructed samples of oneor more color components of the block in the current block as referencesamples for intra prediction if the current block is not a root block.

In some embodiments of engaging multiple criteria checking, a currentblock is set as a root block if the current block satisfies two or morecriteria. In an embodiment of applying multiple criteria checking, acurrent block is set as a root block if a size of the current blocksatisfies criterion A and partitioning of the current block satisfiescriterion B, or a width of the current block satisfies criterion C andpartitioning of the current block satisfies criterion D. The size andwidth of the current block correspond to a luma sample size and a lumasample width or a chroma sample size and a chroma sample width. Forexample, beside checking the size of the current block with criterion A,a split flag for partitioning the current block or a splitting typeapplied to the current block is checked with criterion B, or besidechecking the width of the current block with criterion C, a split flagfor partitioning the current block or a splitting type applied to thecurrent block is checked with criterion D, and the current block is setas a root block if both criteria A and criteria B, or both criteria Cand criteria D are satisfied. One or more children blocks of the currentblock use neighboring reconstructed samples of one or more colorcomponents of the current block as reference samples for intraprediction if the current block is set to be a root block. Once the rootblock is set, the multiple criteria checking is not applied to the oneor more children blocks in the current block. The split flag mayindicate whether a particular splitting type is used to partition thecurrent block, for example, a quadtree partitioning is applied topartition the current block if the split flag is true. Some examples ofthe splitting type are quadtree partitioning, horizontal binary treepartitioning, vertical binary tree partitioning, horizontal ternary treepartitioning, and vertical ternary tree partitioning. Each childrenblock in the current block uses neighboring reconstructed samples of oneor more color components of the block in the current block as referencesamples for intra prediction if the current block is not a root block.

In some embodiments of engaging multiple criteria checking, a currentblock is set as a root block if the current block satisfies two or morecriteria. In an embodiment of applying multiple criteria checking, acurrent block is set as a root block if a size of the current blocksatisfies criterion A and partitioning of the current block satisfiescriterion B, or the combination of a width and a height of the currentblock satisfies criterion C and partitioning of the current blocksatisfies criterion D. For example, beside checking the size of thecurrent block with criterion A, a split flag for partitioning thecurrent block or a splitting type applied to the current block ischecked with criterion B, or beside checking the combination of widthand height of the current block with criterion C, a split flag forpartitioning the current block or a splitting type applied to thecurrent block is checked with criterion D, and the current block is setas a root block if both criteria A and criteria B or both criteria C andcriteria D are satisfied. One or more children blocks of the currentblock use neighboring reconstructed samples of one or more colorcomponents of the current block as reference samples for intraprediction if the current block is set to be a root block. Once the rootblock is set, the multiple criteria checking is not applied to the oneor more children blocks in the current block. The split flag mayindicate whether a particular splitting type is used to partition thecurrent block, for example, a quadtree partitioning is applied topartition the current block if the split flag is true. Some examples ofthe splitting type are quadtree partitioning, horizontal binary treepartitioning, vertical binary tree partitioning, horizontal ternary treepartitioning, and vertical ternary tree partitioning. Each childrenblock in the current block uses neighboring reconstructed samples of oneor more color components of the block in the current block as referencesamples for intra prediction if the current block is not a root block.

In some embodiments, there is a syntax element for each block indicatinga location of reference samples for intra prediction or other toolrequiring neighboring reference samples or neighboring information. Thissyntax element is derived at both encoder and decoder sides so it is notsignaled in the video bitstream according to one embodiment.

Children Blocks Use Reference Samples of Parent Block if SatisfyingPredefined Criteria

In some embodiments, all children blocks of a current block usereference samples of their parent block if the current block satisfiesone or more predefined criteria during partitioning, otherwise, each ofthe children blocks use reference samples along the current blockboundary. In this embodiment, the reference samples of the parent blockmay not be aligned with the reference samples of the current block. Oneembodiment of the predefined criterion is related to a size of thecurrent block, for example, all children blocks use reference samples oftheir parent block if a size of a current block is less than, equal to,or less than or equal to a predefined threshold. Some examples of thepredefined threshold for the size are 4, 8, 16, 32, 64, 128, 256, 1024,2048, and 4096 luma samples or chroma samples. For example, a predefinedthreshold is 32 chroma samples and a current block with a size of 16chroma samples is less than the predefined threshold, if this currentblock is further split into children blocks, these children blocks areencoded or decoded using the reference samples of the parent block. Inone embodiment, the predefined criterion is related to a width or heightof a current block. For example, if a width of a current block is lessthan a predefined threshold, one or more children blocks use referencesamples of their parent block for intra prediction. The predefinedthreshold for the width or height can be 4, 8, 16, 32, 64, or 128 lumasamples or chroma samples. In one example, if one 16 by 8 block isfurther split into eight 8 by 2 children blocks, these eight childrenblocks use reference samples of their parent block. In another example,if a height of a current block is less than a predefined threshold, oneor more children blocks in the current block use reference samples ofthe current block for intra prediction and the same criterion is notchecked in the one or more children blocks. The predefined threshold maybe 4, 8, 16, 32, 64, or 128 luma samples or chroma samples. For example,if one 8 by 16 block is further split into eight 2 by 8 children blocksduring partitioning, these eight children blocks use reference samplesof their parent block.

In one embodiment, predefined criteria are related to both width andheight of a current block. For example, a width of a current block islarger than or equal to its height, and the predefined criteria checksif the width is less than a predefined threshold A and the height isless than another predefined threshold B. One or more children blocks inthe current block share reference samples of the parent block if thecurrent block satisfies the predefined criteria. Some examples of thethreshold A for the width are 2, 4, 8, 16, 32, 64, and 128 luma samplesor chroma samples, and some examples of the threshold B for the heightare 2, 4, 8, 16, 32, 64, and 128 luma samples or chroma samples. Acombination of threshold A and threshold B (thresA, thresB) can be (8,2), (16, 2), (32, 2), (64, 2), (128, 2), (8, 4), (16, 4), (32, 4), (64,4), (128, 4), (16, 8), (32, 8), (64, 8), (128, 8), (32, 16), (64, 16),(128, 16), (64, 32), (128, 32), or (128, 64). For example, one 64 by 8block is split into two 32 by 8 children blocks during partitioning, andthese two children blocks share same reference samples of the parent 64by 8 block if the combination of threshold A and threshold B is (128,16). In another example, a height of a current block is larger than orequal to its width, and the predefined criteria checks if the height isless than a predefined threshold A and the width is less than anotherpredefined threshold B. One or more children blocks in the current blockuse reference samples of the current block if the current blocksatisfies the predefined criteria. The threshold A or B may be 2, 4, 8,16, 32, 64, or 128 luma samples or chroma samples, and some examples of(thresA, thresB) are (8, 2), (16, 2), (32, 2), (64, 2), (128, 2), (8,4), (16, 4), (32, 4), (64, 4), (128, 4), (16, 8), (32, 8), (64, 8),(128, 8), (32, 16), (64, 16), (128, 16), (64, 32), (128, 32), and (128,64). For example, one 8 by 64 block is split into two 8 by 32 childrenblocks, and these two children blocks use same reference samples of the8 by 64 block if (thresA, thresB) is (16, 128).

In another embodiment, a predefined criterion is related to a QT depthor MT depth of a current block. For example, one or more children blocksof a current block use reference samples of the current block for intraprediction when a QT depth, MT depth, or both QT depth and MT depth ofthe current block is larger than a predefined threshold. The predefinedthreshold for the depth may be 1, 2, 3, 4, or 5. For example, duringpartitioning, one block with a depth larger than 2 is further split intochildren blocks, and these children blocks use same reference samples ofthe parent block whose depth is 3. The predefined criterion is notchecked in the children blocks. In another example, if a weighted depthcalculated from both QT and MT depths of a current block is larger thana predefined threshold, then all children blocks of the current blockuse reference samples of their parent block. The weighted depthavg_depth can be calculated by avg_depth=(A*QT depth+(2{circumflex over( )}B−A)*MT depth>>B). In one example, A is equal to 3 and B is equal to3.

In yet another embodiment, a predefined criterion is related to anaverage QT depth or average MT depth of neighboring blocks of a currentblock. For example, one or more children blocks in a current block usereference samples of the parent block if an average QT depth or MT depthof neighboring blocks of the current block is larger than a predefinedthreshold. The predefined threshold can be 1, 2, 3, 4, or 5.

Defining Root Block for Sharing Reference Samples by M×N Grid Someembodiments of the present invention define a root block for sharingneighboring reference samples by M×N grids, some examples of M or N are2, 4, 8, 16, or 32 luma samples or chroma samples. M and N may be thesame value, and in this case, each root block is a square block. Videodata in a picture, a slice, or a tile are divided into M×N blocks, andif a current block is smaller than, or is smaller than or equal to, anM×N block, boundary neighboring reference samples of the M×N block areused to predict the current block. The current block may be a CU, PU, orTU. In some embodiments, a syntax element is derived for each blockindicating a location of reference samples for the block, and thissyntax element is not signaled to a decoder side as the decoder side iscapable of deriving the syntax according to an embodiment.

In one embodiment, threshold A is defined for block widths and thresholdB is defined for block heights. In a case when a width of a currentblock is smaller than, or smaller than or equal to, threshold A and aheight of the current block is larger than or equal to, or larger than,threshold B, a block with a size equals to A*block_height and a top-leftx position equals to (floor(pos_x/A))*A are used to generate boundaryneighboring reference samples for the current block. In a case when aheight of a current block is smaller than, or smaller than or equal to,threshold B and a width of the current block is larger than or equal to,or larger than, threshold A, a block with a size equals to block width*Band a top-left y position equals to (floor(pos_y/B))*B are used togenerate boundary neighboring reference samples for the current block.If a width of a current block is smaller than, or smaller than or equalto, threshold A and a height of the current block is smaller than, orsmaller than or equal to, threshold B, a block with a size equals to A*Band a top-left x position equals to (floor(pos_x/A))*A and a y positionequals to (floor(pos_y/B)*B are used to generate boundary neighboringreference samples for the current block. The function floor(x) is usedto find a maximum integer value that closed to the input x.

In one embodiment, if a top-left position of a current block is withinan M×N block A, a top-right position of the current block is within anM×N block B, and a bottom-left position of the current block is withinan M×N block C, then reference samples of the current block are boundaryreconstructed samples of a block whose top-left position is(floor(topLeftPos_x/M)*M, floor(topLeftPos_y/N)*N), a reference blockwidth is equal to M*(floor(topRIghtPos_x/M)−floor(topLeftPos_x/M)+1),and a reference block height is equal toN*(floor(bottomLeftPos_y/N)−floor(topLeftPos_y/N)+1).

FIGS. 10A and 10B illustrate an example of determining neighboringreference samples for each coding block with M×N root blocks. The blockpartition of the coding blocks is shown in FIG. 10A, and the codingorder is block A, block B, block C, block D, then block E. The four M×Nroot blocks corresponding to the five coding blocks of FIG. 10A areshown in FIG. 10B.

For block A, the entire block is within one M×N root block (root block1), and a reference block top-left position is a top-left position ofroot block 1 in grid domain. A length of top boundary and left boundaryreconstructed samples is equal to 1+N+M as shown in FIG. 11A. FIG. 11Ato 11E illustrate neighboring reference samples for processing block Ato block E respectively. For block B, both top-left and bottom-leftpositions of block B are in root block 1 in grid domain, and a top-rightposition of block B is in root block 2 in grid domain, a reference blockposition is in the top-left position of root block 1 but a referenceblock width is equal to 2M and a reference block height is equal to1+2M+N, as shown in FIG. 11B. For block C, the entire block is withinone M×N root block (root block 2), and a reference block top-leftposition is a top-left position of the root block 2 in grid domain. Alength of both top boundary reconstructed samples and left boundaryreconstructed samples is equal to 1+N+M as shown in FIG. 11C. For blockD, both top-left and bottom-left positions of block D are in root block1, and a top-right position of block D is in root block 2, a referenceblock position is in a top-left position of root block 1 but a referenceblock width is equal to 2M and a reference block height is equal to1+2M+N as shown in FIG. 11D. For block E, both top-left and bottom leftpositions of block E are in root block 3 in grid domain, and a top-rightposition of block E is in root block 4 in grid domain, a reference blockposition is in a top-left position of root block 3, but a referenceblock width is equal to 2M and a reference block height is equal to N. Alength of both top boundary reconstructed samples and left boundaryreconstructed samples is equal to 1+2M+N as shown in FIG. 11E.

In another embodiment, if a reference block top-left x position is not atop-left x position of a CU, then a reference block x position becomesrefBlock.position_x−1*M; if a reference block top-left y position is nota top-left y position of a CU, then a reference blocky position becomesrefBlock.position_y−1*N. This check will be applied iteratively untilthe reference block top-left position is a top-left position of one CU.

A reference block width is equal toM*(floor(topRightPos_x/M)−floor(topLeftPos_x/M)+1+(floor(topLeftPos_x/M)−referenceblock top-left x position/M)), and a reference block height is equal toN*(floor(bottomLeftPos_y/N)−floor(topLeftPos_y/N)+1+(floor(topLeftPos_y/N)−referenceblock top-left y position/N)). Therefore, in the example shown in FIGS.10A and 10B, a reference block top-left position for block C is equal toa top-left position of root block 1. The length of both top boundary andleft boundary reconstructed samples is equal to 1+N+2M as shown in FIG.12A. FIG. 12A illustrates reference samples for block C according tothis embodiment. In another embodiment, a reference block for each blockis related to its parent block. A top-left position of the referenceblock is equal to (floor(parent.topLeftPos_x/M)*M,floor(parent.topLeftPos_y/N)*N), a reference block width is equal toM*(floor(parent.topRightPos_x/M)−floor(parent.topLeftPos_x/M)+1), and areference block height is equal toN*(floor(parent.bottomLeftPos_y/N)−floor(parent.topLeftPos_y/N)+1). FIG.12B illustrates same boundary reference samples for block A, block B,block C, and block D according to this embodiment. For block E, atop-left position of a reference block is equal to a top-left positionof root block 1 in grid domain, and a length along top-boundary andleft-boundary is equal to 1+2M+2N as shown in FIG. 12C. FIG. 12Cillustrates reference samples for block E according to this embodiment.

Alternative Methods for Determining Reference Samples for Blocks InsideRoot Block

In some other embodiments, when neighboring reconstructed samples arerequired for encoding or decoding a block in a root block, and some ofthe neighboring reconstructed samples are within the root block of thecurrent block, these boundary reference samples are treated asunavailable samples. A sample filing process is applied to generatethose unavailable samples for encoding or decoding the block in the rootblock according to one embodiment. An original intra boundary samplegeneration process is applied and these unavailable samples are treatedin the same way as those samples out of the picture or tile boundaryaccording to another embodiment. In yet another embodiment, theunavailable samples inside the root block are generated or derived usingreference samples outside the root block. For example, the unavailablesamples are generated by copying one or more adjacent availablereference samples outside the root block if one of the unavailablesamples is adjacent to the one or more adjacent available referencesamples. In another embodiment, one or more default value, such as 128or 1<<(bitdepth-1), are assigned for those unavailable samples. Forexample, if any boundary reference sample of a current block is insidethe corresponding root block, the boundary reference sample is set to apredefined value, such as 128, 512, or 1<<(bitdepth-1). In anotherexample, if any boundary reference sample of a current block is insidethe root block, the boundary reference sample is derived using boundarysamples of the root block.

A current block is set to be a root block when the current blocksatisfies one or more criteria. Some examples of the criteria relate toone or a combination of a size, area, width, height, and depth of thecurrent block, and a size, area, width, height, and depth of onechildren block split from the current block. Some examples of the depthare QT depth, BT depth, MT depth, combined depth, or average depth ofneighboring blocks. For example, a current block is set as a root blockwhen a size of the current block is less than, equal to, or less than orequal to a predefined threshold, where the predefined threshold can be4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, or 4096 luma or chromasamples. In another example, a current block is set as a root block if awidth of the current block is less than, equal to, or less than or equalto a predefined threshold, where the predefined threshold can be 2, 4,8, 16, 32, 64, or 128 luma or chroma samples. In yet another example, acurrent block is set as a root block if both width and height of thecurrent block are less than, equal to, or less than or equal to apredefined threshold, where the predefined threshold can be 2, 4, 8, 16,32, 64, or 128 luma or chroma samples. An example of determining whethera current block is a root block by checking whether a width of thecurrent block is less than, equal to, or less than or equal topredefined threshold A or a height of the current block is less than,equal to, or less than or equal to predefined threshold B. Each ofthreshold A for the width and threshold B for the height can be 2, 4, 8,16, 32, 64, or 128 luma or chroma samples. A combination of threshold Aand threshold B (thresA, thresB) can be any combination of threshold Aand threshold B. Another example of determining whether a current blockis a root block by checking whether a depth of the current block islarger than, equal to, or larger than or equal to a predefinedthreshold, where the threshold for the depth can be 1, 2, 3, 4, or 5.The depth may be a QT depth, MT depth, or both QT depth and MT depth ofthe current block, or a combined depth calculated by a linearcombination of multiple depths. In another example, a weighted depth ofa current block is checked with a predefined threshold, and the currentblock is a root block if the weighted depth is larger than, equal to, orlarger than or equal to the predefined threshold. The weighted depth iscalculated from QT depth and MT depth of the current block, for example,the weighted depth is calculated by avg_depth=(A*QT depth+(2{circumflexover ( )}B−A)*MT depth>>B), or the weighted depth is equal to 2*QTdepth+MT depth. In a case when one of the criteria is related to depthinformation of neighboring blocks of a current block, the current blockis set as a root block if an average depth of the neighboring blocks islarger than, equal to, or larger than or equal to a predefinedthreshold, where the predefined threshold for the average depth can be1, 2, 3, 4, or 5. Some examples of the average depth are average QTdepth and average MT depth of the neighboring blocks.

Representative Flowchart

FIG. 13 is a flowchart illustrating video processing method forprocessing a current block requiring neighboring reconstructed samplesas reference samples according to embodiments of the present invention.An encoder or decoder receives input data of the current block in acurrent picture in step S1310. In step S1320, the encoder or decoderchecks if the current block satisfies one or more predefined criteriaduring partitioning of the current block. For example, one or acombination of a size, width, height, width and height, depth, andsplitting type of the current block, and a size, width, height, widthand height, and depth of one children block split from the current blockare checked with one or more predefined thresholds. If the current blocksatisfies the predefined criteria in step S1320, the current block isprocessed by steps S1330 ad S1340. In step S1330, the current block isset as a root block and one or more color components of one or moreblocks in the current block are not checked with the same predefinedcriteria. The video encoder or decoder then encodes or decodes the oneor more color components of one or more blocks in the current blockusing neighboring reconstructed samples of the one or more colorcomponents of the current block as reference samples in step S1340.Reconstructed samples within the current block are not used to encode ordecode the one or more color components of one or more blocks in thecurrent block if the current block is set as a root block. For example,the video encoder or decoder generates an intra predictor for each blockin the current block using an intra prediction mode and neighboringreconstructed samples of the one or more color components of the currentblock if the current block is set as a root block, and then the videoencoder or decoder encodes or decodes the block according to the intrapredictor. If the current block does not satisfy the predefined criteriain step S1320, each block in the current block is encoded or decodedusing neighboring reconstructed samples of the one or more colorcomponents of the block in step S1350. For example, the video encoder ordecoder uses neighboring reconstructed samples of one or more colorcomponents of each block in the current block to generate an intrapredictor for each block in the current block when the current block isnot a root block. The current block is a chroma block in one embodiment,or the current block can be a chroma block or a luma block according toanother embodiment.

Representative Block Diagrams

FIG. 14 illustrates an exemplary system block diagram for a VideoEncoder 1400 implementing one or more of the video processing methods ofthe present invention. A current block is to be encoded according toneighboring reconstructed samples or neighboring information, forexample, the current block is to be encoded in intra prediction or anyother tool requires neighboring samples or neighboring information.Intra Prediction module 1410 provides an intra predictor for each blockto be coded in intra prediction based reconstructed samples of a currentpicture according to an intra prediction mode. A current block ischecked with one or more predefined criteria during partitioning and isset as a root block if the current block satisfies the predefinedcriteria. One or more color components of one or more blocks in thecurrent block are not checked with the same predefined criteria if thecurrent block is set as a root block. In some embodiments, neighboringreconstructed samples of the one or more color components of the currentblock are used by Intra Prediction module 1410 as reference samples forthe one or more color components of one or more blocks in the currentblock to generate an intra predictor if the current block is set as aroot block. In cases when the current block is not a root block and isfurther split into children blocks, Intra Prediction module 1410 usesneighboring reconstructed samples of the one or more color components ofeach children block as reference samples for generating an intrapredictor for the children block. In one embodiment, Intra Predictionmodule 1410 derives MPMs from neighboring intra prediction modes of thecurrent block for encoding the one or more color components of one ormore blocks in the current block if the current block is set as a rootblock. In cases when the current block is not a root block, IntraPrediction module 1410 derives MPMs from neighboring intra predictionmodes of each block in the current block for encoding the block in thecurrent block. Inter Prediction module 1412 performs motion estimation(ME) and motion compensation (MC) to provide inter predictors based onvideo data from other picture or pictures. Either Intra Predictionmodule 1410 or Inter Prediction module 1412 supplies the selectedpredictor to Adder module 1416 to form prediction errors, also calledprediction residues. Since the current block is encoded by intraprediction, Intra Prediction module 1410 sends the intra predictor(s)for the current block to Adder module 1416 to produce predictionresidues of the current block.

The prediction residues of the current block are further processed byTransformation module (T) 1418 followed by Quantization module (Q) 1420.The transformed and quantized residual signal is then encoded by EntropyEncoder 1434 to form an encoded video bitstream. The encoded videobitstream is then packed with side information. The transformed andquantized residual signal of the current block is processed by InverseQuantization module (IQ) 1422 and Inverse Transformation module (IT)1424 to recover the prediction residues. As shown in FIG. 14, theprediction residues are recovered by adding back to the selectedpredictor at Reconstruction module (REC) 1426 to produce reconstructedsamples. The reconstructed samples may be stored in Reference PictureBuffer (Ref. Pict. Buffer) 1432 and used for prediction of otherpictures. The reconstructed samples from REC 1426 may be subject tovarious impairments due to the encoding processing, consequently,in-loop processing Deblocking Filter (DF) 1428 and Sample AdaptiveOffset (SAO) 1430 are applied to the reconstructed samples beforestoring in the Reference Picture Buffer 1432 to further enhance picturequality. Syntax associated with information for the in-loop processingDF 1428 and SAO 1430 are provided to Entropy Encoder 1434 forincorporation into the encoded video bitstream.

A corresponding Video Decoder 1500 for Video Encoder 1400 of FIG. 14 isshown in FIG. 15. The encoded video bitstream is the input to VideoDecoder 1500 and is decoded by Entropy Decoder 1510 to parse and recoverthe transformed and quantized residual signal and other systeminformation. The decoding process of Decoder 1500 is similar to thereconstruction loop at Encoder 1400, except Decoder 1500 only requiresmotion compensation prediction in Inter Prediction module 1514. Eachblock is decoded by either Intra Prediction module 1512 or InterPrediction module 1514. Switch module 1516 selects an intra predictorfrom Intra Prediction module 1512 or Inter predictor from InterPrediction module 1514 according to decoded mode information. IntraPrediction module 1512 decodes an intra prediction mode for each blockin the current block according to an embodiment of the presentinvention. The current block is checked with one or more predefinedcriteria during partitioning, and is set as a root block if the currentblock satisfies the predefined criteria. Intra Prediction module 1512generates an intra predictor for each block in the current block usingneighboring reconstructed samples of one or more color components of thecurrent block and the intra prediction mode if the current block is setto be a root block. Intra Prediction module 1512 generates intrapredictor for each block in the current block using neighboringreconstructed samples of the one or more color components of the blockin the current block and the intra prediction mode if the current blockis not a root block. In one embodiment, Intra Prediction module 1512derives MPMs for each block in the current block based on neighboringintra prediction modes of the current block if the current block is setas a root block. The transformed and quantized residual signalassociated with each block is recovered by Inverse Quantization module(IQ) 1520 and Inverse Transformation module (IT) 1522. The recoveredtransformed and quantized residual signal is reconstructed by addingback the predictor in REC module 1518 to produce reconstructed samples.The reconstructed samples are further processed by DF 1524 and SAO 1526to generate final decoded video. If the currently decoded picture is areference picture, the reconstructed samples of the currently decodedpicture are also stored in Ref. Pict. Buffer 1528 for later pictures indecoding order.

Various components of Video Encoder 1400 and Video Decoder 1500 in FIG.14 and FIG. 15 may be implemented by hardware components, one or moreprocessors configured to execute program instructions stored in amemory, or a combination of hardware and processor. For example, aprocessor executes program instructions to control receiving of inputdata associated with a current block in a current picture. The processoris equipped with a single or multiple processing cores. In someexamples, the processor executes program instructions to performfunctions in some components in Encoder 1400 and Decoder 1500, and thememory electrically coupled with the processor is used to store theprogram instructions, information corresponding to the reconstructedimages of blocks, and/or intermediate data during the encoding ordecoding process. The memory in some embodiment includes anon-transitory computer readable medium, such as a semiconductor orsolid-state memory, a random access memory (RAM), a read-only memory(ROM), a hard disk, an optical disk, or other suitable storage medium.The memory may also be a combination of two or more of thenon-transitory computer readable medium listed above. As shown in FIGS.14 and 15, Encoder 1400 and Decoder 1500 may be implemented in the sameelectronic device, so various functional components of Encoder 1400 andDecoder 1500 may be shared or reused if implemented in the sameelectronic device. For example, one or more of Reconstruction module1426, Inverse Transformation module 1424, Inverse Quantization module1422, Deblocking Filter 1428, Sample Adaptive Offset 1430, and ReferencePicture Buffer 1432 in FIG. 14 may also be used to function asReconstruction module 1518, Inverse Transformation module 1522, InverseQuantization module 1520, Deblocking Filter 1524, Sample Adaptive Offset1526, and Reference Picture Buffer 1528 in FIG. 15, respectively.

Embodiments of the processing method for a video coding system may beimplemented in a circuit integrated into a video compression chip orprogram code integrated into video compression software to perform theprocessing described above. For examples, checking if the current blocksatisfies one or more predefined criteria may be realized in programcode to be executed on a computer processor, a Digital Signal Processor(DSP), a microprocessor, or field programmable gate array (FPGA). Theseprocessors can be configured to perform particular tasks according tothe invention, by executing machine-readable software code or firmwarecode that defines the particular methods embodied by the invention.

The invention may be embodied in other specific forms without departingfrom its spirit or essential characteristics. The described examples areto be considered in all respects only as illustrative and notrestrictive. The scope of the invention is therefore, indicated by theappended claims rather than by the foregoing description. All changeswhich come within the meaning and range of equivalency of the claims areto be embraced within their scope.

1. A method of processing video data in a video coding system,comprising: receiving input data associated with a current block in acurrent picture; checking if the current block satisfies two or morepredefined criteria during partitioning; setting the current block to bea root block if the current block satisfies the one or more predefinedcriteria; and if the current block is set to be a root block, encodingor decoding one or more chroma color components of the current blockwithout further partitioning and using neighboring reconstructed samplesof the one or more chroma color components of the current block asreference samples, and encoding or decoding the luma color component ofeach subblock in the current block using neighboring reconstructedsamples of the luma color components of each subblock in the currentblock as reference samples; wherein the one or more predefined criteriacorrespond to block size, width, height or partitioning of the currentblock or one or more children block.
 2. The method of claim 1, whereinthe one or more predefined criteria correspond to the condition that theblock size of the current block is equal to 64 and the partitioning ofthe current block is quad-tree partition.
 3. The method of claim 1,wherein the one or more predefined criteria correspond to the conditionthat the block size of the current block is equal to 128 and thepartitioning of the current block is ternary-tree partition.
 4. Themethod of claim 1, wherein the one or more predefined criteriacorrespond to the condition that the block size of the current block isequal to 64 and the partitioning of the current block is ternary-treepartition.
 5. The method of claim 1, wherein the one or more predefinedcriteria correspond to the condition that the block size of the currentblock is equal to a threshold and the partitioning of the current blockis binary-tree partition.
 6. The method of claim 1, wherein the one ormore predefined criteria correspond to the condition that the block sizeof the current block is equal to a threshold and the partitioning of thecurrent block is ternary-tree partition.
 7. The method of claim 1,wherein the one or more predefined criteria correspond to the conditionthat the width of the current block is equal to a threshold and thepartitioning of the current block is binary-tree partition.
 8. Themethod of claim 1, wherein the one or more predefined criteriacorrespond to the condition that the width of the current block is equalto a threshold and the partitioning of the current block is ternary-treepartition.
 9. The method of claim 1, wherein the one or more predefinedcriteria correspond to the condition that the size, width, or height ofthe one or more children block is less than or equal to a threshold. 10.The method of claim 9, wherein the one or more predefined criteriacorrespond to the condition that chroma component size, width, or heightof one of the children block is less than or equal to the threshold. 11.The method of claim 10, wherein the one or more predefined criteriacorrespond to the condition that the chroma component size of thechildren block is less than or equal to
 16. 12. The method of claim 10,wherein the one or more predefined criteria correspond to the conditionthat the chroma component width of the children block is less than orequal to
 4. 13. The method of claim 10, wherein the one or morepredefined criteria correspond to the condition that the chromacomponent height of the children block is less than or equal to
 4. 14.The method of claim 10, wherein the one or more predefined criteriacorrespond to the condition that the chroma component size of thechildren block is less than
 16. 15. The method of claim 10, wherein theone or more predefined criteria correspond to the condition that thechroma component width of the children block is less than
 4. 16. Themethod of claim 10, wherein the one or more predefined criteriacorrespond to the condition that the chroma component height of thechildren block is less than
 4. 17. An apparatus of processing video datain a video coding system, the apparatus comprising one or moreelectronic circuits configured for: receiving input data associated witha current block in a current picture; checking if the current blocksatisfies two or more predefined criteria during partitioning; settingthe current block to be a root block if the current block satisfies theone or more predefined criteria; and if the current block is set to be aroot block, encoding or decoding one or more chroma color components ofthe current block without further partitioning and using neighboringreconstructed samples of the one or more chroma color components of thecurrent block as reference samples, and encoding or decoding the lumacolor component of each subblock in the current block using neighboringreconstructed samples of the luma color components of each subblock inthe current block as reference samples; wherein the one or morepredefined criteria correspond to block size, width, height orpartitioning of the current block or one or more children block.